
---@class Face106
---@field ID number
---@field rect Rect
---@field score number
---@field points_array Vec2Vector
---@field visibility_array FloatVector
---@field yaw number
---@field pitch number
---@field roll number
---@field eye_dist number
---@field tracking_cnt number
local Face106 = {}
---@param action FaceAction
---@return boolean
function Face106:hasAction (action) end



---@class FaceExtra
---@field eye_count number
---@field eyebrow_count number
---@field lips_count number
---@field iris_count number
---@field eye_left Vec2Vector @22 normalized
---@field eye_right Vec2Vector @22 normalized
---@field eyebrow_left Vec2Vector @13 normalized
---@field eyebrow_right Vec2Vector @13 normalized
---@field lips Vec2Vector @64 normalized
---@field left_iris Vec2Vector @20 normalized
---@field right_iris Vec2Vector @20 normalized
local FaceExtra = {}



---@class FaceVerifyInfo
---@field features FloatVector
local FaceVerifyInfo = {}



---@class FaceAttribute
---@field age number
---@field attractive number
---@field happyScore number
---@field boyProb number
---@field exp_probs FloatVector
---@field gender FaceAttrGender
local FaceAttribute = {}



---@class SkeletonInfo
---@field ID number
---@field rect Rect
---@field key_points_xy Vec2Vector
---@field key_points_detected UInt8Vector
---@field key_points_score FloatVector
---@field orientation number
local SkeletonInfo = {}



---@class AEAlgorithmResult
local AEAlgorithmResult = {}
---@return number
function AEAlgorithmResult:getFaceCount () end
---@param index number
---@return Face106
function AEAlgorithmResult:getFaceBaseInfo (index) end
---@param index number
---@return FaceExtra
function AEAlgorithmResult:getFaceExtraInfo (index) end
---@param index number
---@return FaceVerifyInfo
function AEAlgorithmResult:getFaceVerifyInfo (index) end
---@return number
function AEAlgorithmResult:getFaceAttributeCount () end
---@param index number
---@return FaceAttribute
function AEAlgorithmResult:getFaceAttributeInfo (index) end
---@return number
function AEAlgorithmResult:getSkeletonCount () end
---@param index number
---@return SkeletonInfo
function AEAlgorithmResult:getSkeletonInfo (index) end



---@class AEAlgorithmManager
local AEAlgorithmManager = {}
---@return AEAlgorithmResult
function AEAlgorithmManager.getAEAlgorithmResult () end
---@param graphName string
---@param algName string
---@param algType string
---@param index number
---@return AEAlgorithmResult
function AEAlgorithmManager.getAEAlgorithmInfo (graphName, algName, algType, index) end
---@param graphName string
---@param name string
---@param enable boolean
---@return boolean
function AEAlgorithmManager.setAlgorithmEnable (graphName, name, enable) end
---@param graphName string
---@param name string
---@param key string
---@param value number
---@return boolean
function AEAlgorithmManager.setAlgorithmParamInt (graphName, name, key, value) end
---@param graphName string
---@param name string
---@param key string
---@param value number
---@return boolean
function AEAlgorithmManager.setAlgorithmParamFloat (graphName, name, key, value) end
---@param graphName string
---@param name string
---@param key string
---@param value string
---@return boolean
function AEAlgorithmManager.setAlgorithmParamStr (graphName, name, key, value) end

